package com.spic.business.registrationform.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.spic.common.core.annotation.Excel;
import com.spic.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 一人一档 (南露天煤矿从业人员登记)对象 archive_staff_record
 * 
 * @author spic
 * @date 2022-07-20
 */
public class ArchiveStaffRecord extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 员工档案编号 */
    @NotBlank(message = "员工档案编号不能为空")
    @Excel(name = "员工档案编号")
    private String staffArchiveId;

    /** 建档时间 */
    @NotNull(message = "建档时间不能为空")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "建档时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date archiveTime;

    /** 照片地址 */
    private byte[] photo;

    public byte[] getPhoto() {
        return photo;
    }

    public void setPhoto(byte[] photo) {
        this.photo = photo;
    }

    /** $column.columnComment */
    @NotBlank(message = "员工姓名不能为空")
    @Excel(name = "姓名")
    private String name;

    /** 性别 */
    @NotBlank(message = "员工性别不能为空")
    @Excel(name = "性别")
    private String sex;

    /** 民族 */
    @Excel(name = "民族")
    @NotBlank(message = "员工民族不能为空")
    private String nation;

    /** 政治面貌 */
    @Excel(name = "政治面貌")
    private String politicsStatus;

    /** 教育水平 */
    @Excel(name = "文化程度")
    private String educationalLevel;

    /** 岗位 */
    @Excel(name = "职务/岗位")
    private String position;

    /** 技能等级 */
    @Excel(name = "职称/技能等级")
    private String skillLevel;

    /** 身份证号 */
    @Excel(name = "身份证号")
    @NotBlank(message = "员工身份证号不能为空")
    private String certNo;

    /** 工作时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @NotNull(message = "员工参加工作时间不能为空")
    @Excel(name = "参加工作时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date workTime;

    /** 入矿时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @NotNull(message = "员工入矿时间不能为空")
    @Excel(name = "入矿时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date mineTime;

    /** 所属部门 */
    @Excel(name = "所属部门")
    @NotBlank(message = "员工所属部门不能为空")
    private String department;

    /** 岗位持证情况 */
    @Excel(name = "岗位持证情况")
    private String workLicense;

    /** 毕业学校专业 */
    @Excel(name = "毕业院校及专业")
    private String schoolMajor;

    /** 家庭住址 */
    @Excel(name = "现家庭住址")
    @NotBlank(message = "员工家庭住址不能为空")
    private String homeAddress;

    /** 联系电话 */
    @Excel(name = "联系电话")
    @NotBlank(message = "员工联系电话不能为空")
    private String phone;

    public void setStaffArchiveId(String staffArchiveId) 
    {
        this.staffArchiveId = staffArchiveId;
    }

    public String getStaffArchiveId() 
    {
        return staffArchiveId;
    }
    public void setArchiveTime(Date archiveTime) 
    {
        this.archiveTime = archiveTime;
    }

    public Date getArchiveTime() 
    {
        return archiveTime;
    }

    public void setName(String name) 
    {
        this.name = name;
    }

    public String getName() 
    {
        return name;
    }
    public void setSex(String sex) 
    {
        this.sex = sex;
    }

    public String getSex() 
    {
        return sex;
    }
    public void setNation(String nation) 
    {
        this.nation = nation;
    }

    public String getNation() 
    {
        return nation;
    }
    public void setPoliticsStatus(String politicsStatus) 
    {
        this.politicsStatus = politicsStatus;
    }

    public String getPoliticsStatus() 
    {
        return politicsStatus;
    }
    public void setEducationalLevel(String educationalLevel) 
    {
        this.educationalLevel = educationalLevel;
    }

    public String getEducationalLevel() 
    {
        return educationalLevel;
    }
    public void setPosition(String position) 
    {
        this.position = position;
    }

    public String getPosition() 
    {
        return position;
    }
    public void setSkillLevel(String skillLevel) 
    {
        this.skillLevel = skillLevel;
    }

    public String getSkillLevel() 
    {
        return skillLevel;
    }
    public void setCertNo(String certNo) 
    {
        this.certNo = certNo;
    }

    public String getCertNo() 
    {
        return certNo;
    }
    public void setWorkTime(Date workTime) 
    {
        this.workTime = workTime;
    }

    public Date getWorkTime() 
    {
        return workTime;
    }
    public void setMineTime(Date mineTime) 
    {
        this.mineTime = mineTime;
    }

    public Date getMineTime() 
    {
        return mineTime;
    }
    public void setDepartment(String department) 
    {
        this.department = department;
    }

    public String getDepartment() 
    {
        return department;
    }
    public void setWorkLicense(String workLicense) 
    {
        this.workLicense = workLicense;
    }

    public String getWorkLicense() 
    {
        return workLicense;
    }
    public void setSchoolMajor(String schoolMajor) 
    {
        this.schoolMajor = schoolMajor;
    }

    public String getSchoolMajor() 
    {
        return schoolMajor;
    }
    public void setHomeAddress(String homeAddress) 
    {
        this.homeAddress = homeAddress;
    }

    public String getHomeAddress() 
    {
        return homeAddress;
    }
    public void setPhone(String phone) 
    {
        this.phone = phone;
    }

    public String getPhone() 
    {
        return phone;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("staffArchiveId", getStaffArchiveId())
            .append("archiveTime", getArchiveTime())
            .append("name", getName())
            .append("sex", getSex())
            .append("nation", getNation())
            .append("politicsStatus", getPoliticsStatus())
            .append("educationalLevel", getEducationalLevel())
            .append("position", getPosition())
            .append("skillLevel", getSkillLevel())
            .append("certNo", getCertNo())
            .append("workTime", getWorkTime())
            .append("mineTime", getMineTime())
            .append("department", getDepartment())
            .append("workLicense", getWorkLicense())
            .append("schoolMajor", getSchoolMajor())
            .append("homeAddress", getHomeAddress())
            .append("phone", getPhone())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .toString();
    }
}
